
// var numDecodings = function (s) {
//     if (s[0] == '0') {
//         return 0;
//     }
//     const dp = new Array(s.length + 1).fill(0);
//     dp[0] = 1;
//     dp[1] = 1;
//     for (let i = 1; i < s.length; i++) {
//         if ((s[i] != '0' && s[i - 1] == '1') || (['1', '2', '3', '4', '5', '6'].includes(s[i]) && s[i - 1] == '2')) {
//             dp[i + 1] += dp[i] + dp[i - 1];
//         } else if (s[i] == '0') {
//             if (!['1', '2'].includes(s[i - 1])) {
//                 return 0;
//             } else if (i - 2 >= 0 && (s[i - 2] == '1' || s[i - 2] == '2')) {
//                 dp[i + 1] = dp[i - 1];
//             } else dp[i + 1] = dp[i];
//         } else {
//             dp[i + 1] = dp[i];
//         }
//     }
//     return dp[s.length];
// };
